package com.hello;

/**
 * 冒泡排序【升序】
 * 适合少量数据做排序
 * 算法步骤：
 * 1、从前往后与相邻两个元素进行比较，如果后面的元素小于前面的元素，则交换位置
 * 2、一轮结束，最后一个元素为最大元素
 * 3、重复上述步骤，直至n轮
 * 备注: 如果想倒序，则修改步骤1中的比较规则
 *
 * 时间复杂度：
 *  O(N^2)
 */
public class BubblingSort {

    public static void main(String[] args) {
        int[] arr = {5,3,6,7,4,2,8,1};
        bubblingSort(arr);
        for (int a: arr){
            System.out.print(","+a);
        }
    }

    public static void bubblingSort(int[] arr) {
        for(int i=0; i < arr.length; i++) {
            for(int j=0; j<arr.length-i-1; j++){
                if(arr[j] > arr[j+1]) {
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
    }
}
